#include <stdio.h>

//是否同一直线
int isInline(int x1,int y1,int x2,int y2)
{
    if(x1==0)
    {
        if(x2!=0)
        {
            return 0;
        }
        else{
            return 1;
        }
    }
    else if(y2==0)
    {
        if(y1!=0)
        {
            return 0;
        }
        else{
            return 1;
        }
    }
    return x1*y2==x2*y1;
}   

int main(){
    int n;
    int i,j,k,l;
    scanf("%d",&n);
    int** input=new int*[n];
    for(i=0;i<n;i++)
    {
        input[i]=new int[2];
        scanf("%d %d",&input[i][0],&input[i][1]);
    }
    int** bj=new int*[n];
    for(i=0;i<n;i++)
    {
        bj[i]=new int[n];
        for(j=0;j<n;j++)
        {
            bj[i][j]=1;
        }
    }

    int* line=new int[n];
    int len=0;

    int tmpx,tmpy;
    int maxLen=0;
    for(i=0;i<n;i++)
    {
        line[0]=i;
        len=1;
        for(j=i+1;j<n;j++)
        {
            if(bj[i][j]){
                line[1]=j;
            
                len=2;
                bj[i][j]=0;
                tmpx=input[j][0]-input[i][0];
                tmpy=input[j][1]-input[i][1];
                for(k=j+1;k<n;k++)
                {
                    if(isInline(tmpx,tmpy,input[k][0]-input[j][0],input[k][1]-input[j][1])){
                        for(l=0;l<len;l++)
                        {
                            bj[l][k]=bj[k][l]=0;
                        }
                        line[len]=k;
                        len++;
                    }
                    
                }
                if(maxLen<len)
                {
                    maxLen=len;
                }
            }
        }
        
    }
    
    for(i=0;i<n;i++)
    {
        delete input[i];
        delete bj[i];
    }
    delete input;
    delete bj;
    delete line;
    printf("%d\n",maxLen);
    return 0;
}